12.
problema stevenBradbury (j: JJOO) = result : Atleta {
	//Requiere que al menos una competencia ya haya finalizado (y, por lo tanto, se haya entregado un oro)
	requiere algunOro: long([comp | comp <- todasLasCompetencias(j), finalizada(comp)&&|ranking(comp)|>0])>0;

	//Asegura que result haya ganado un oro
	asegura ganoOro: existe(f <- [ranking(comp)[0] | comp <- todasLasCompetencias(j), finalizada(comp)&&|ranking(comp)|>0]) ciaNumber(result)==ciaNumber(f);

	//Asegura que entre todos los ganadores de oro, el result es el que tiene la menor habilidad en alguna de las medallas que ganó.	
	asegura esElPeor: existe(dep <- deportesEnLosQueGano(j, result)) paraTodo(f <- [ranking(comp)[0] | comp <- todasLasCompetencias(j), finalizada(comp)&&|ranking(comp)|>0]) capacidad(result, dep) <= capacidad(f, prm(categoria(comp));
}

aux deportesEnLosQueGanoOro(j: JJOO, a: Atleta) : [Deportes] =
	[prm(categoria(comp)) | comp <- todasLasCompetencias(j), finalizada(comp)&&|ranking(comp)|>0&&ciaNumber(ranking(comp)[0])==ciaNumber(a)];
